package br.com.bancodecurriculos.curriculo.candidato.dominio;

import java.util.List;

import br.com.bancodecurriculos.curriculo.experienciaprofissional.dominio.ExperienciaProfissional;
import br.com.bancodecurriculos.curriculo.formacaoacademica.dominio.FormacaoAcademica;
import br.com.bancodecurriculos.pessoa.fisica.dominio.PessoaFisica;

public class Candidato {
	private Double pretencaoSalarial;
	private int disponibilidade;
	private String observacao;
	private PessoaFisica pessoaFisica;
	private List<FormacaoAcademica> formacaoAcademica;
	private List<ExperienciaProfissional> experienciaProfissional;
	private List<TurnoDisponivel> turnoDisponivel;
	
	private enum TurnoDisponivel{
		MANHA, TARDE, NOITE;
	}

	public Double getPretencaoSalarial() {
		return pretencaoSalarial;
	}

	public void setPretencaoSalarial(Double pretencaoSalarial) {
		this.pretencaoSalarial = pretencaoSalarial;
	}

	public int getDisponibilidade() {
		return disponibilidade;
	}

	public void setDisponibilidade(int disponibilidade) {
		this.disponibilidade = disponibilidade;
	}

	public String getObservacao() {
		return observacao;
	}

	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}

	public PessoaFisica getPessoaFisica() {
		return pessoaFisica;
	}

	public void setPessoaFisica(PessoaFisica pessoaFisica) {
		this.pessoaFisica = pessoaFisica;
	}

	public List<FormacaoAcademica> getFormacaoAcademica() {
		return formacaoAcademica;
	}

	public void setFormacaoAcademica(List<FormacaoAcademica> formacaoAcademica) {
		this.formacaoAcademica = formacaoAcademica;
	}

	public List<ExperienciaProfissional> getExperienciaProfissional() {
		return experienciaProfissional;
	}

	public void setExperienciaProfissional(
			List<ExperienciaProfissional> experienciaProfissional) {
		this.experienciaProfissional = experienciaProfissional;
	}

	public List<TurnoDisponivel> getTurnoDisponivel() {
		return turnoDisponivel;
	}

	public void setTurnoDisponivel(List<TurnoDisponivel> turnoDisponivel) {
		this.turnoDisponivel = turnoDisponivel;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Candidato other = (Candidato) obj;
		if (disponibilidade != other.disponibilidade)
			return false;
		if (experienciaProfissional == null) {
			if (other.experienciaProfissional != null)
				return false;
		} else if (!experienciaProfissional
				.equals(other.experienciaProfissional))
			return false;
		if (formacaoAcademica == null) {
			if (other.formacaoAcademica != null)
				return false;
		} else if (!formacaoAcademica.equals(other.formacaoAcademica))
			return false;
		if (observacao == null) {
			if (other.observacao != null)
				return false;
		} else if (!observacao.equals(other.observacao))
			return false;
		if (pessoaFisica == null) {
			if (other.pessoaFisica != null)
				return false;
		} else if (!pessoaFisica.equals(other.pessoaFisica))
			return false;
		if (pretencaoSalarial == null) {
			if (other.pretencaoSalarial != null)
				return false;
		} else if (!pretencaoSalarial.equals(other.pretencaoSalarial))
			return false;
		if (turnoDisponivel == null) {
			if (other.turnoDisponivel != null)
				return false;
		} else if (!turnoDisponivel.equals(other.turnoDisponivel))
			return false;
		return true;
	}
}
